from typing import List

class Solution:
    def pancakeSort(self, arr: List[int]) -> List[int]:
        """执行煎饼排序并返回翻转序列"""
        result = []
        n = len(arr)
        
        for target in range(n, 0, -1):
            # 找到当前目标值的位置
            index = arr.index(target)
            
            # 如果已经在正确位置，跳过
            if index == target - 1:
                continue
                
            # 如果不在首位，先翻转到首位
            if index != 0:
                result.append(index + 1)
                arr[:index + 1] = arr[:index + 1][::-1]
            
            # 然后翻转到正确位置
            result.append(target)
            arr[:target] = arr[:target][::-1]
            
        return result

def is_sorted(arr: List[int]) -> bool:
    """检查数组是否已排序"""
    return all(arr[i] <= arr[i + 1] for i in range(len(arr) - 1))

def validate_pancake_sort(arr: List[int], k_sequence: List[int]) -> bool:
    """验证煎饼排序序列是否正确"""
    # 复制数组以避免修改原数组
    arr_copy = arr.copy()
    
    # 应用所有翻转操作
    for k in k_sequence:
        if k < 1 or k > len(arr_copy):
            return False
        arr_copy[:k] = arr_copy[:k][::-1]
    
    # 检查是否已排序
    return is_sorted(arr_copy)